---
title: "Row Data"
description: "Provide an array of row data to your $framework Data Table via the rowData property. Explore updating row data, providing a row ID, and the row node."
---

Provide an array of data to the grid via the `rowData` property to render a row for each item in the array. 

## Row Data

When using the default row model - [Client Side](./row-models/#client-side) data is provided to the grid via the `rowData` property.

{% gridExampleRunner title="Row Data" name="row-data" exampleHeight=275 /%}

```{% frameworkTransform=true %}
const gridOptions = {
    rowData: [
        { make: "Toyota", model: "Celica", price: 35000 },
        { make: "Ford", model: "Mondeo", price: 32000 },
        { make: "Porsche", model: "Boxster", price: 72000 },
    ],
};
```

{% note %}
If you are using TypeScript you may wish to provide the grid with your row data type for an improved developer experience. See [TypeScript Generics](./typescript-generics/) for more details.
{% /note %}

## Updating Row Data

The simplest way to update `rowData` is to pass a new array of data to the grid. For full details on updating row data, including transactions, see [Updating Data](./data-update/).

## Row IDs

Providing a unique ID for each row allows the grid to work optimally across a range of features. It is strongly recommend to provide row IDs by passing a function that returns a string to the `getRowId` grid option. This function should always return the same string for a given row, and no two rows should share the same ID.

{% apiDocumentation source="grid-options/properties.json" section="rowModels" names=["getRowId"] /%}

{% gridExampleRunner title="Get Row ID" name="get-row-id" exampleHeight=300 /%}

## Row Nodes

Every row displayed in the grid is represented by a [Row Node](./row-interface/) which 
exposes stateful attributes and methods for directly interacting with the row.

Row Nodes are accessed via [Grid API](./grid-api/) methods, as well as provided as props for items such as [Cell Component](./component-cell-renderer/).

The following buttons log the data to the developer console.

{% gridExampleRunner title="Row Node" name="row-node" exampleHeight=350 /%}

Check the [Row Reference](./row-object/) and [Row Events](./row-events/) for all items available on the [Row Node](./row-interface/).
